公衆衛生学・疫学演習

本日の内容


  • 記述統計学の復習
    • データの種類と要約のまとめ
  • 推測統計学の復習
    • 推定・検定
  • 診断検査法の研究


  • 研究デザインまとめ

  • 生存時間解析

  • meta分析

記述統計学の復習

質的変数–数字で測れない

  • カテゴリへ分類できる変数
    • 順序ない
      • 例:性別(男・女); 人種(黒人・白人・黄色人種)
    • 順序ある
      • 例:1年生・2年生; 満足度(悪い・普通・良い)
  • 表を作る
    • 2重分割表

量的変数–数字で測れる

  • 原点0がある
    • 例:身長(cm); 体重(kg); 年齢(歳)
  • 原点0がない
    • 例:気温\( ^{\circ}C \); 日付(2010-1-1)
  • 要約統計量を求める

要約統計量のまとめ

  1. 中心を表す量:

    • 平均値 (mean);中央値(median);最頻値(mode)

      library(ShinyIntroStats) -> intro_stats_shinyapps() [3]

  2. バラツキを表す量:

    • 標準偏差(sd);四分位範囲(IQR)
  3. 中央値四分位範囲のペア

    • 外れ値の影響を受けにくい
  4. 平均値標準偏差

    • 外れ値がない場合に使う

推定と検定


  • 推測統計学
    • 一部の標本(サンプル, sample)から母集団(population)について調べる(推測, inference).
  • 身長の例:
    測定値(観測値) \( = \) 真の身長 \( + \) 測定誤差:(モデル)
    • 180 \( = \) 179.8 \( + \) 0.2
    • 165 \( = \) 164.5 \( + \) 0.5
    • 170 \( = \) 169.7 \( + \) 0.3
    • X \( = \) \( \alpha \) \( + \) \( \epsilon \)


  • クラス全員の身長を測って(観測値),このデータを使って,日本大学生の身長予測モデルを作る:
    • クラス全員の平均身長を日本大学生の平均身長として見積もる(推定する)
    • クラス全員の平均身長と報告された日本大学生の平均身長と違いがあるかを検定する(test)
    • 作った予測モデルを使って,ほかの大学から来た学生の身長を予想する: 予測
    • その予測には,\( \alpha \)がぴったり一致することはない,普通誤差があるため区間推定が必要.\( \longrightarrow \) 95%信頼区間

95% 信頼区間 身長測定の例:

信頼区間に関する注意


  • X \( = \) \( \alpha \) \( + \) \( \epsilon \)
    • \( \alpha \)が95%の確率でこの区間に入る \( \bigtriangleup \)
    • 100回同じ実験を繰り返すと,95回の信頼区間には\( \alpha \)が含まれる.\( \bigcirc \)
  • サンプルサイズ \( \Uparrow \) \( \longrightarrow \) 信頼区間の幅 \( \Downarrow \)

  • リスク比やオッズ比など,95%信頼区間には 1 が含まれると,統計学的に有意ではない.

  • 実演:run shiny(confidence intervals)

検定のコンセプト

  • 主張したいことを対立仮節説H1とする.
  • その反対の否定したい仮説:帰無仮説(null hypothesis)を立てる.
    • たいていは否定されることを期待して立てられる。
    • 例えば、「コインを20回投げたとき回表18回が出たとしたらコインに歪みがないといえるか」という問題を考えた場合に,「コインに歪みがない」(表と裏が出る確率が等しいp \( = \) 0.5)という仮説にあたる.
  • 仮説を棄却するかしないかを決める基準の確率を有意水準と定義される.(0.05)
    • この有意水準より小さい確率を持つことは,"稀に起こること"と判断し,該当の仮説は棄却される.
    • 例えば,「コインを20回投げたとき回表18回が出たとしたらコインに歪みがないといえるか」という問題を考えた場合に,帰無仮説が正しいなら,それが起きる確率は,\[ p = {18 \choose 20}(0.5)^{20} = 0.00018 < 0.05 \]そのため,歪みがないという帰無仮説を棄却する.

データの種類によって統計解析手法が異なる


データ種類 二値変数 連続変数 生存期間
要約 分割表 ヒストグラム
箱ひげ図
散布図
Kaplan-Meier 曲線
2群比較 Fisher 正確検定
カイ二乗検定
t 検定
Man-Whitney U 検定
logrank検定
一般化 Wilcoxon 検定
対応のある2群比較 McNemar 検定 対応のある t 検定
Wilcoxon 符号付順位和検定
3群以上の比較 Fisher 正確検定
カイ二乗検定
分散分析 (ANOVA)
Kruskal-Wallis 検定
logrank検定
一般化 Kruskal-Wallis 検定
対応のある3群以上の比較 Cochran R 検定 反復測定分散分析
Friedman検定
(多変量) 回帰分析 ロジスティクス回帰 単回帰・重回帰 Cox比例ハザード回帰

t 検定 (One sample)

  • 例:11名女性(30-49歳)に,毎日のエネルギー摂取を調査したところ,推奨の毎日エネルギー量2000 calの違いを検定する.
daily.intake.kJ <- c(5260, 5470, 5640, 6180, 6390, 6515, 6805, 7515, 7515, 8230, 8770)

#毎日推奨エネルギー摂取量との違いを検定する
t.test(daily.intake.kJ*0.239, mu=2000)#Kj->Calの変換が必要

    One Sample t-test

data:  daily.intake.kJ * 0.239
t = -4.6886, df = 10, p-value = 0.0008563
alternative hypothesis: true mean is not equal to 2000
95 percent confidence interval:
 1430.737 1797.501
sample estimates:
mean of x
 1614.119

t 検定 (Two sample) 1


  • 例:22名女性の毎日エネルギー消費量(mJ)を測定したところ,肥満と痩せの2群の間に毎日エネルギー消費量は差があるかを検定する:

t 検定 (Two samples) 2


library(ISwR);attach(energy)#データセットをローディング
t.test(expend ~ stature, var.equal=TRUE) # "~"の符号はstatureによりグループ分けの意味

    Two Sample t-test

data:  expend by stature
t = -3.9456, df = 20, p-value = 0.000799
alternative hypothesis: true difference in means is not equal to 0
95 percent confidence interval:
 -3.411451 -1.051796
sample estimates:
 mean in group lean mean in group obese
           8.066154           10.297778
#差の95%信頼区間は0を含まれないため(p < 0.05),肥満と痩せのエネルギー消費量は統計学的に有意な違いがある.

t 検定 (Two samples) in EZR

まとめたテーブルからt 検定 (Two samples)

Sample Statin..No Statin..Yes
Number 6058 3049
Glucose 9.4(5.1) 9.2(5.3)
require(lessR) #函数をローディング
tt.brief(n1 = 6058, m1 = 9.4, s1 = 5.1, n2 = 3049, m2 = 9.2, s2 = 5.3)

Compare Y across X levels Group1 and Group2
------------------------------------------------------------

Y for X Group1:  n = 6058,  mean = 9.4,  sd = 5.1
Y for X Group2:  n = 3049,  mean = 9.2,  sd = 5.3

---
t-cutoff: tcut =  1.960
Standard Error of Mean Difference: SE =  0.11

Hypothesis Test of 0 Mean Diff:  t = 1.743,  df = 9105,  p-value = 0.081

Margin of Error for 95% Confidence Level:  0.22
95% Confidence Interval for Mean Difference:  -0.02 to 0.42

Sample Mean Difference of Y:  0.20
Standardized Mean Difference of Y, Cohen's d:  0.04

t 検定 (Paired two samples) 1


  • 例:11名の女性の月経前・後のエネルギー摂取量の違いがあるかを検定する

t 検定 (Paired two samples) 2

library(ISwR);attach(intake)#データセットをローディング
post-pre #月経後のエネルギー摂取は月経前より低い
 [1] -1350 -1250 -1755 -1020  -745 -1835 -1540 -1540  -725 -1330 -1435
t.test(pre, post, paired = TRUE) #自分の対応があるので,pairをTRUEに指定

    Paired t-test

data:  pre and post
t = 11.941, df = 10, p-value = 0.0000003059
alternative hypothesis: true difference in means is not equal to 0
95 percent confidence interval:
 1074.072 1566.838
sample estimates:
mean of the differences
               1320.455
#月経前後のエネルギーの差の95%信頼区間には,0が含まれていないので,統計学的に有意な違いがある.

t 検定 (Paired two samples) in EZR 1

t 検定 (Paired two samples) in EZR 2

$$\chi^2検定 $$

  • \( \chi^2 \)乗統計量の計算:\( \chi^2 = \sum \frac{(O - E)^2}{E} \)
  • 例:胃潰瘍の薬AとBの治癒率に差があるかを検定する:
M <- matrix(c(23, 7, 18, 13), 2 ,2)#データ入力
colnames(M) <- c("治癒","未治癒")#列の名前
rownames(M) <- c("薬A","薬B")#行の名前
addmargins(M)#観察値(O)
    治癒 未治癒 Sum
薬A   23     18  41
薬B    7     13  20
Sum   30     31  61
addmargins(chisq.test(M)$expected)#期待値(E)
         治癒   未治癒 Sum
薬A 20.163934 20.83607  41
薬B  9.836066 10.16393  20
Sum 30.000000 31.00000  61

$$\chi^2検定 $$

chisq.test(M, correct = FALSE) #カイ二乗検定を行う

    Pearson's Chi-squared test

data:  M
X-squared = 2.394, df = 1, p-value = 0.1218
E <- chisq.test(M)$expected#期待値
O <- chisq.test(M)$observed#観察値
(O - E)^2/E #カイ二乗統計量の計算
         治癒    未治癒
薬A 0.3988938 0.3860262
薬B 0.8177322 0.7913538
0.3988938 + 0.3860262 + 0.8177322 + 0.7913538
[1] 2.394006
#自由度(df) 1 のp値は0.05より大きいので,治癒率に差があると言えない.

診断検査法の研究

  • 感度(Sn)・特異度(Sp)の推定
  • 尤度比の推定
    • 陽性尤度比 (LR\( + \)):
      LR\( + \) \( = \) Sn \( \div \) (1 \( - \) Sp)
    • 陰性尤度比 (LR\( - \)):
      LR\( - \) \( = \) (1 \( - \) Sn) \( \div \) Sp
  • ROC曲線
    • 作成
    • 曲線下面積(AUC)の推定

感度・特異度計算の例

library(RcmdrPlugin.EZR)
.Table <- matrix(c(36, 76, 15, 455), 2,2, byrow = T)
epi.tests(.Table, conf.level = 0.95)
              Disease positive Disease negative Total
Test positive               36               76   112
Test negative               15              455   470
Total                       51              531   582

 Point estimates and 95 % CIs:
---------------------------------------------------------
                                    Estimation Lower CI Upper CI
Apparent prevalence                      0.192    0.161    0.227
True prevalence                          0.088    0.066    0.114
Sensitivity                              0.706    0.562    0.825
Specificity                              0.857    0.824    0.886
Positive predictive value                0.321    0.236    0.416
Negative predictive value                0.968    0.948    0.982
Diagnstic accuracy                       0.844    0.812    0.872
Likelihood ratio of a positive test      4.932    3.752    6.482
Likelihood ratio of a negative test      0.343    0.224    0.526
---------------------------------------------------------

EZRでの操作



ROC曲線とは


  • 検査のカットオフ値をたくさん作る;
  • 小 \( \rightarrow \) 大の順番に,それぞれの感度(Sn)・特異度(Sp)を算出する.
  • Snを\( y \)座標に,1 \( - \) Spを\( x \)座標にとったプロットしたグラフ.
  • AUC(Area Under the roc Curve)曲線下面積が大きいほど良い検査法.

    library(plotROC); shiny_plotROC()

plot of chunk unnamed-chunk-12

ROC曲線をEZRで作成

set.seed(2529)
D.ex <- rbinom(200, size = 1, prob = .5)
M1 <- rnorm(200, mean = D.ex, sd = .65)
M2 <- rnorm(200, mean = D.ex, sd = 1.5)

test <- data.frame(D = D.ex, D.str = c("Healthy", "Ill")[D.ex + 1],
                   M1 = M1, M2 = M2, stringsAsFactors = FALSE)

研究デザインのまとめ

エビデンスの信頼性


レベル 研究種類
1a ランダム化比較試験のメタアナリシス
1b 少なくとも一つのランダム化比較試験
2 コホート研究(前向き)
3 ケース・コントロール研究(後ろ向き)
4 処置前後の比較などの前後比較,対照群を伴わない研究
5 症例報告,ケースシリーズ
6 専門家個人の意見(専門家委員会報告を含む)

例:胃潰瘍の薬AとBの治癒率の違いを定量化する 1

    治癒 未治癒 Sum
薬A   23     18  41
薬B    7     13  20
Sum   30     31  61

  • 指標
    • リスク:割合
      • 薬A群リスク(治癒の割合): \( p_1 = 23 \div 41 \) 0.5609756
      • 薬B群リスク(治癒の割合): \( p_2 = 7 \div 20 \) 0.35
    • リスク差: Risk Difference \( = \) \( p_1 - p_2 = \) 0.2109756

例:胃潰瘍の薬AとBの治癒率の違いを定量化する 2

    治癒 未治癒 Sum
薬A   23     18  41
薬B    7     13  20
Sum   30     31  61

  • 指標
    • リスク比: Risk Ratio (RR) \( = \) \( p_1 \div p_2 = \) 1.6027875
    • オッズ比: Odds Ratio (OR) \( = (23 \div 18) \div (7 \div 13) = (23 \times 13) \div (7 \times 18) = \) 2.3730159

例:胃潰瘍の薬AとBの治癒率の違いを定量化する 3

    治癒 未治癒 Sum
薬A   23     18  41
薬B    7     13  20
Sum   30     31  61
prop.diff.conf(23, 41, 7, 20, 95) #リスク差の点推定値と信頼区間
[1] Difference : 0.211
[1] 95% confidence interval : -0.047 - 0.469
prop.ratio.conf(23, 41, 7, 20, 95) #リスク比の点推定値と信頼区間
[1] Ratio : 1.603
[1] 95% confidence interval : 0.832 - 3.088

例:胃潰瘍の薬AとBの治癒率の違いを定量化する 4

    治癒 未治癒 Sum
薬A   23     18  41
薬B    7     13  20
Sum   30     31  61
fisher.test(M) #オッズ比の点推定と信頼区間

    Fisher's Exact Test for Count Data

data:  M
p-value = 0.1737
alternative hypothesis: true odds ratio is not equal to 1
95 percent confidence interval:
 0.6936416 8.4948588
sample estimates:
odds ratio
  2.339104